﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using Spring.Context;
using Spring.Context.Support;
using bolsatrabajo.Negocio;
using bolsatrabajo.Dominio.NHIBERNATE;

namespace bolsatrabajo.Pruebas.NHIBERNATE
{
    [TestFixture]
    public class pruebaServPostulante
    {
        private IApplicationContext contexto = null;

        [TestFixtureSetUp]
        public void InicializarSpring()
        {
            this.contexto = new XmlApplicationContext(
                "assembly://bolsatrabajo/bolsatrabajo/capanegocio.xml",
                "assembly://bolsatrabajo/bolsatrabajo/capapersistencia.xml");
        }

        [Test]
        public void PruebaCrearPostulanteCorrectamente()
        {
            ServPostulante servPostulante = (ServPostulante)this.contexto.GetObject("servPostulante");
            Assert.NotNull(servPostulante);

            //PruebaPostulanteService postulanteNH = new PruebaPostulanteService(); // Instanciando la clase a probar
            // Creando un objeto en memoria para luego persistirlo en la BD
            Postulante postulanteACrear = new Postulante();
            postulanteACrear.Nombres = "Susana";
            postulanteACrear.ApellidoMaterno = "Chavez";
            postulanteACrear.ApellidoPaterno = "Lopez";
            postulanteACrear.Correo = "suxy@gmail.com";
            postulanteACrear.Contrasena = "amanda";
            postulanteACrear.Sexo = "F";
            postulanteACrear.FechaNacimiento = "fecha";

            Postulante postulanteCreado = null;
            Assert.DoesNotThrow(delegate
            {
                postulanteCreado = servPostulante.CrearPostulante(postulanteACrear);
            });

            Assert.NotNull(postulanteCreado);
            Assert.AreEqual(postulanteCreado.Correo, postulanteACrear.Correo);
        }
         [Test]
        public void PruebaListarPostulante()

        {
            ServPostulante servPostulante = (ServPostulante)this.contexto.GetObject("servPostulante");
            Assert.NotNull(servPostulante);
            ICollection<Postulante> listaobtenida = null;
            Assert.DoesNotThrow(delegate
            {
                listaobtenida = servPostulante.ListarPostulantes();
            });
            Assert.NotNull(listaobtenida);
            Assert.Greater(listaobtenida.Count, 0);
        }
    }
}

